﻿/*
 * This software is the confidential and proprietary
 * information of NetBay
 * Such confidential information should not be disclosed
 * NetBay copyright(c) 2010
 */

#region Using
using System;
#endregion

namespace NetBay.Core.Log
{
    /// <summary>
    /// 
    /// </summary>
    public interface ILogger
    {/// <summary>
        /// Logs the debug.
        /// </summary>
        /// <param name="logString">The log string.</param>
        void LogDebug(string logString);

        /// <summary>
        /// Logs the debug format.
        /// </summary>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogDebugFormat(string logFormat, params object[] args);

        /// <summary>
        /// Logs the debug format.
        /// </summary>
        /// <param name="ex">The ex.</param>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogDebugFormat(Exception ex, string logFormat, params object[] args);

        /// <summary>
        /// Logs the error.
        /// </summary>
        /// <param name="logString">The log string.</param>
        void LogError(string logString);

        /// <summary>
        /// Logs the error format.
        /// </summary>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogErrorFormat(string logFormat, params object[] args);

        /// <summary>
        /// Logs the error format.
        /// </summary>
        /// <param name="ex">The ex.</param>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogErrorFormat(Exception ex, string logFormat, params object[] args);

        /// <summary>
        /// Logs the fatal.
        /// </summary>
        /// <param name="logString">The log string.</param>
        void LogFatal(string logString);

        /// <summary>
        /// Logs the fatal format.
        /// </summary>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogFatalFormat(string logFormat, params object[] args);

        /// <summary>
        /// Logs the fatal format.
        /// </summary>
        /// <param name="ex">The ex.</param>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogFatalFormat(Exception ex, string logFormat, params object[] args);

        /// <summary>
        /// Logs the warn.
        /// </summary>
        /// <param name="logString">The log string.</param>
        void LogWarn(string logString);

        /// <summary>
        /// Logs the warn format.
        /// </summary>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogWarnFormat(string logFormat, params object[] args);

        /// <summary>
        /// Logs the warn format.
        /// </summary>
        /// <param name="ex">The ex.</param>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogWarnFormat(Exception ex, string logFormat, params object[] args);

        /// <summary>
        /// Logs the info.
        /// </summary>
        /// <param name="logString">The log string.</param>
        void LogInfo(string logString);

        /// <summary>
        /// Logs the info format.
        /// </summary>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogInfoFormat(string logFormat, params object[] args);

        /// <summary>
        /// Logs the info format.
        /// </summary>
        /// <param name="ex">The ex.</param>
        /// <param name="logFormat">The log format.</param>
        /// <param name="args">The args.</param>
        void LogInfoFormat(Exception ex, string logFormat, params object[] args);

    }
}